typedef struct MTHDCHK
{
	char ID[4];
	unsigned char length[4];

	unsigned char format[2];
	unsigned char numTracks[2];
	unsigned char division[2];

}MTHDCHK;

typedef struct MTRKCHK
{
	char ID[4];
	unsigned char length[4];

	//unsigned char Data[];	Length of track is length above
}MTRKCHK;


typedef struct NOTE_ARGS
{
	unsigned char noteNumber;
	unsigned char noteVelocity;
}NOTE_ON_ARGS;

typedef struct AFTERTOUCH_ARGS
{
	unsigned char noteNumber;
	unsigned char pressureAmount;

}AFTERTOUCH_ARGS;


typedef struct CONTROL_CHANGE_ARGS
{
	unsigned char controllerNumber;
	unsigned char controllerChange;

}CONTROL_CHANGE_ARGS;


typedef struct PROGRAM_CHANGE_ARGS
{
	unsigned char programChange;

}PROGRAM_CHANGE_ARGS;


typedef struct CHANNEL_PRESSURE_ARGS
{
	unsigned char channelPressure;

}CHANNEL_PRESSURE_ARGS;


typedef struct PITCH_WHEEL_ARGS
{
	unsigned char pitch[2];

}PITCH_WHEEL_ARGS;